package com.xmindguoguo.boot.modular.system.model;

import java.io.Serializable;
import java.util.Date;

import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotEmpty;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import lombok.Data;

/**
 * 
 *
 * @author xmind-果果
 * @Date 2018-11-11 22:39
 */
@Data
@TableName("t_system_user")
public class TSystemUserModel implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     * 
     */
    @TableId(value = "id", type = IdType.INPUT)
    private Long id;

    /**
     * 头像
     * 
     */
    @TableField(value = "avatar")
    private String avatar;

    /**
     * 账号
     * 
     */
    @NotEmpty(message = "账号不能为空")
    @TableField(value = "account")
    private String account;

    /**
     * 密码
     * 
     */
    @Size(max = 40, min = 6, message = "密码不能小于6位且不能长于40位")
    @TableField(value = "password")
    private String password;

    /**
     * md5密码盐
     * 
     */
    @TableField(value = "salt")
    private String salt;

    /**
     * 名字
     * 
     */
    @TableField(value = "name")
    private String name;

    /**
     * 生日
     * 
     */
//    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(value = "birthday")
    private String birthday;

    /**
     * 性别（1：男 2：女）
     * 
     */
    @TableField(value = "sex")
    private Integer sex;

    /**
     * 电子邮件
     * 
     */
    @Email(message = "邮箱格式不正确")
    @TableField(value = "email")
    private String email;

    /**
     * 电话
     * 
     */
    @TableField(value = "phone")
    private String phone;

    /**
     * 角色id
     * 
     */
    @TableField(value = "roleId")
    private String roleId;

    /**
     * 部门id
     * 
     */
    @TableField(value = "deptId")
    private Long deptId;

    /**
     * 状态状态(0：启用 2：冻结 -1：删除）
     * 
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 创建时间
     * 
     */
    @TableField(value = "createTime")
    private Date createTime;

    /**
     * 更新时间
     * 
     */
    @TableField(value = "updateTime")
    private Date updateTime;
    /**
     * 旧密码
     */
    @TableField(exist = false)
    private String oldPassword;

}
